package com.example.beikeyigou.goods;

import android.annotation.SuppressLint;
import android.app.Activity;
import android.content.Context;
import android.graphics.Color;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.TextView;

import com.example.beikeyigou.MainActivity;
import com.example.beikeyigou.R;

import java.util.List;

/**
 * 编写listview和gridview适配器的过程
 * 1.创建一个类，继承与baseAdapter
 * 2.重写4个方法
 * 3.在类当中定义2个成员变量：context和集合
 * 4.创建构造方法，将两个成员变量赋值
 * 5.前三个方法按照套路写（固定写法）
 * 6.创建内部类，在内部类当中声明item布局对应控件，并在构造方法当中查找，构造方法要传view
 */
public class TypeAdapter extends BaseAdapter {
    Context context;
    List<TypeBean.DataBean> data;
    int clickPos;

    public TypeAdapter(Context context, List<TypeBean.DataBean> data) {
        this.context = context;
        this.data = data;
    }

    // 设置被点击的位置
    public void setClickPos(int clickPos) {
        this.clickPos = clickPos;
        notifyDataSetChanged();
    }

    @Override   // 显示多少行数据，集合的长度
    public int getCount() {
        return data.size();
    }

    @Override   // 返回指定位置的数据
    public Object getItem(int position) {
        return data.get(position);
    }

    @Override   // 返回指定位置view的id
    public long getItemId(int position) {
        return position;
    }

    @SuppressLint("ResourceAsColor")
    @Override    // 返回item_type布局对应的view对象
    public View getView(int position, View convertView, ViewGroup parent) {
        VH vh = null;
        if (convertView == null) {
            convertView = LayoutInflater.from(context).inflate(R.layout.item_type, parent, false);
            vh = new VH(convertView);
            convertView.setTag(vh);
        } else {
            vh = (VH) convertView.getTag();
        }
        TypeBean.DataBean bean = data.get(position);
        vh.tv.setText(bean.getName());

        // 点击背景颜色，文字颜色，竖线的出现和隐藏
        if (position == clickPos) {
            // this.getResources().getColor(R.color.pink)
            vh.tv.setTextColor(R.color.pink);
            vh.line.setVisibility(View.VISIBLE);
            vh.line.getLayoutParams().width = vh.tv.getWidth();
        } else {
            vh.tv.setTextColor(R.color.black);
            vh.line.setVisibility(View.INVISIBLE);
            vh.line.getLayoutParams().width = vh.tv.getWidth();
        }
        return convertView;
    }

    class VH {
        TextView tv, line;
        public VH(View v) {
            tv = v.findViewById(R.id.item_type_tv);
            line = v.findViewById(R.id.item_type_line);
        }
    }
}
